# -*- encoding: utf-8 -*-
'''
@File    :   2.py
@Time    :   2022/11/29 14:43:49
@Author  :   Cms 
@Version :   1.0
@Contact :   2267000140@qq.com
@WebSite    :   www.baidu.com
'''

# here put the import lib

import requests

# 2 给定一组数据网址数据，请判断这些网址是否可以访问； 用多线程的方式来实现；
def getHtmlText(url):
    try:        # 网络连接有风险，异常处理很重要
        r = requests.get(url,timeout=30)    # 查一下这个方法的使用
        r.raise_for_status()       # 如果状态不是200，引发HTTPError异常
        r.encoding = r.apparent_encoding
        print("zhengchang")
        return r.text
    except:
        return "产生异常"

if __name__ == "__main__":
    
    # 读取地址到一个list中，将这个list分成五部分，采用五个线程来实现。
    list1 = []

    with open(r"url_data.txt", "r") as f:
        for line in f.readlines():
            line = line.strip()#去掉每一行的空格
            # 某些行存在多个地址，因为他们以;分隔的
            if ';' in line:
                list2 = line.split(";")
                for i in list2:
                    i = i.replace(" ","") #去掉网址中的空格
                    list1.append(i)
            else:
                list1.append(line)
    print(len(list1))

    from concurrent.futures import ThreadPoolExecutor
    num = 5
    threadPool = ThreadPoolExecutor(max_workers=num)
    for i in list1:
        future = threadPool.submit(getHtmlText,i)
    threadPool.shutdown(wait=True)
